Koopmann-Holm et al. investigated how ideal affect (how we want to feel) was affected by the practice of Buddhist-inspired meditation. Following the Affect Valuation Theory (AVT), they hypothesized that “meditators would value calm and other LAP [low arousal positive] states more and excitement and other HAP [high arousal positive] states less than would nonmeditators.”
Study 1 was an online correlation study with the target finding that meditators ranked how often they would ideally like to feel LAP words (“calm” and “peaceful”) significantly higher than nonmeditators when completing the Affect Valuation Index (AVI). This result was the output of an ANCOVA that controlled for age and actual affect. Causal impacts of meditation on ideal LAP were investigated in Koopmann-Holm et al.’s Studies 2 and 3.
Forty-three university students who had been practicing Buddhist-inspired meditation for at least one year, and 48 students who did not practice any form of meditation were recruited for an online study. Meditators and nonmeditators were recruited separately so that neither group knew to whom they were being compared. Meditators reported meditating for an average of 4.28 years (SD = 2.92), approximately 2–3 times a week (M = 3.28, SD = 1.84, on an 8-point scale, 1 = more than once a day to 8 = never), for about 31.16 minutes per session (SD = 14.39). There were no group differences in gender, % Female: Meditators = 51.16, Nonmeditators = 45.83, chi squared(1, 91) = .26, ns. Meditators were significantly older (mean age = 24.98, SD = 6.49) than Nonmeditators (mean age = 20.90, SD = 1.37), F(1, 89) = 18.12, p < .001, partial eta squared = .17; therefore, we controlled for age in our analyses.
Cronbach’s alphas were .85 and .82 for actual and ideal LAP, .74 and .66 for actual and ideal HAP, .63 and .24 for actual and ideal LAN, and .50 and .31 for actual and ideal HAN (alphas for negative states tend to be lower than those for positive states due to restricted variance).
Below is Koopmann-Holm et al.’s “Analyses and Results” discussion for this replication project’s key statistic (in bold).
We initially ran our analyses with Gender as a between subjects factor; however, because there were no significant Gender by Group interactions, we dropped Gender from our final analyses. As mentioned above, we controlled for actual affect when examining group differences in ideal affect, and we controlled for ideal affect when examining group differences in actual affect. The findings did not change when we did not include these covariates.
We conducted separate analyses of covariance (ANCOVAs) for actual and ideal LAP and HAP, controlling for age and the respective other type of affect. As predicted, the main effect of Group (Meditators, Nonmeditators) was significant for ideal LAP [F(1, 87) = 9.34, p < .01, partial eta squared = .10] and ideal HAP [F(1, 87) 4.94, p .05, partial eta squared .05]; meditators valued LAP more and HAP less than did nonmeditators.
The key statistic is an ANCOVA testing whether Meditators and Nonmeditators differ in their ideal LAP, controlling for age and actual LAP [F(1, 87) = 9.34, p < .01, partial eta squared = .10].
A Post Hoc test (Figure 1) reveals that the study had 88% power. The following table of A Priori tests (detailed in Figures 2, 3, 4) show various power and sample sizes to achieve a partial eta squared of 0.10.
data <- matrix(c(80, 73, 90, 97, 95, 119), nrow=3, byrow=T)
colnames(data) <- c("Power (%)", "Sample Size")
knitr::kable(data, caption = "A Prior Power Tests")
| Power (%) | Sample Size |
|---|---|
| 80 | 73 |
| 90 | 97 |
| 95 | 119 |
The original effect size was reported as a partial eta squared of 0.10. Below are images from G*Power for a Post Hoc test based on the reported effect size and A Priori tests for 80%, 90%, and 95% power.
Figure 1. G*Power Post Hoc test based on Koopmann-Holm et al., 2013
Figure 2. G*Power A Priori test for 80% power
Figure 3. G*Power A Priori test for 90% power
Figure 4. G*Power A Prior test for 95% power
My target sample size will be just above 80% power (80 usable participant data sets) to allow for participant exclusion noted in the Methods Addendum below. We will recruit a sufficient number of participants to achieve our planned sample size of 80.
Those 80 participants will be grouped within the survey as Meditators and Nonmeditators where meditators are defined by Koopmann-Holm et al. as participants “who [have] been practicing Buddhist-inspired meditation [e.g., mindfulness, compassion meditation] for at least one year” and non meditators are defined as those who “did not practice any form of meditation.”
Participants will be recruited through MTurk. The aim is to get AVI data from 40 Nonmeditators and 40 Meditators. I expect that collecting data from 40 Meditators will take longer than collecting Nonmeditator data so the Qualtrics survey contains quotas to cap the number of Nonmeditators allowed to take the AVI portion of the survey at 40. This means that once 40 Nonmeditators have taken the survey there will be additional Nonmeditators who take the non-AVI portion of the survey (and receive 0.10) as I wait for more eligible Meditators to take the AVI. As a result, I will initially create more than 80 HITs on MTurk. See “Procedure” for more details about the survey design.
Participants completed an abridged version of the Affect Valuation Index (AVI; Tsai & Knutson, 2006; Tsai, Knutson, & Fung, 2006), which asks participants to use a 5-point rating scale ranging from 1 (never) to 5 (all the time) to rate states that varied in terms of arousal (high, low) and valence (positive, negative) based on the affective circumplex (Feldman Barrett & Russell, 1999; Larsen & Diener, 1992; Watson & Tellegen, 1985). Participants rated how often over the course of a typical week they: (a) actually experienced each state (to assess actual affect) and (b) ideally wanted to feel each state (to assess ideal affect). ‘Calm’ and ‘peaceful’ were used to sample LAP states; ‘enthusiastic’ and ‘euphoric’ were used to sample HAP states; ‘dull’ and ‘sleepy’ to sample LAN states, and ‘hostile’ and ‘worried’ to sample HAN states… All participants also completed a demographic questionnaire, and meditators completed an assessment of their meditation practice.
I will recruit participants to take a survey through MTurk. The survey collects AVI data from Meditators and Nonmeditators and captures additional relevant information for each group (demographics and/or meditation assessment). The structure of the survey is as follows:
Each participant will receive $0.35 for completing this entire survey and I plan to collect data from a sufficient number of participants to achieve 40 Nonmeditator and 40 Meditator data sets. The survey can be viewed here. Participants who engage in straight-lining (in this case giving the identical response to an entire page worth of survey questions) will be excluded from analysis.
The original study was conducted using Remark, my replication uses Qualtrics and contains the same AVI words and ordering from Koopmann-Holm et al., 2013.
We initially ran our analyses with Gender as a between subjects factor; however, because there were no significant Gender by Group interactions, we dropped Gender from our final analyses. As mentioned above, we controlled for actual affect when examining group differences in ideal affect, and we controlled for ideal affect when examining group differences in actual affect. The findings did not change when we did not include these covariates.
We conducted separate analyses of covariance (ANCOVAs) for actual and ideal LAP and HAP, controlling for age and the respective other type of affect. As predicted, the main effect of Group (Meditators, Nonmeditators) was significant for ideal LAP [F(1, 87) = 9.34, p < .01, partial eta squared = .10] and ideal HAP [F(1, 87) 4.94, p .05, partial eta squared .05]; meditators valued LAP more and HAP less than did nonmeditators.
The main effect of Group, however, was not significant for actual LAP [F(1, 87) = 1.44, ns] or actual HAP [F(1, 87) = 1.23, ns]; meditators and nonmeditators did not differ in how calm or excited they actually felt. The main effect of Group was also not significant for ideal LAN [Meditators: M = 1.09, SE = .04; Nonmeditators: M = 1.11, SE = .03; F(1, 87) = .28, ns], ideal HAN [Meditators: M = 1.08, SE = .04; Nonmeditators: M = 1.10, SE = .03; F(1, 87) = .17, ns], actual LAN [Meditators: M = 1.98, SE = .11; Nonmeditators: M = 1.99, SE = .10; F(1, 87) = .00, ns], or actual HAN [Meditators: M = 1.84, SE = .11; Nonmeditators: M = 1.79, SE = .10; F(1, 87) = .13, ns].
Data will be exported from Qualtrics as a csv file and imported into R. My key analysis of interest will be the ANCOVA for determining difference in LAP ideal affect between Meditators and Nonmeditators controlling for age and LAP actual affect (Study 1, Figure 1, upper left column). This replication will be considered a success if the above ANCOVA reveals that Meditators have higher ideal LAP ratings than Nonmeditators.
Close up on key analysis of interest: ideal LAP for Meditators and Nonmeditators
I will run the ANCOVA with the same covariates: age and respective other type of affect.
I also plan to reproduce the remaining sections of Study 1 Figure 1: Ideal Affect for HAP and Actual Affect findings. In addition, I plan to explore correlations between demographic data (including participants’ general geographic locations with in the US) and AVI responses because some of my future AVI work will compare East and West coast samples (see Exploratory Analyses for more details).
My sample will not be limited to college students, will not be recruited on campus, will not separately recruit Meditators and Nonmeditators (rather they will be identified and branched in the Qualtrics survey), will use Qualtrics instead of Remark, and will focus primarily on replicating the Ideal LAP finding from Study 1. Age differences between a college sample and MTurk sample are the most likely place to anticipate differences in findings. I am also using the same survey for both Meditators and Nonmeditators with branches as described above. Each portion of the AVI is also split into three screen-pages instead of one coninuous scrolling page for the participants’ ease.
The results below come from a sample of 85 MTurk participants who took the AVI (after excluding 18 participants): 43 Meditators and 42 Nonmeditators. Average age was 34.7 years old. There were more female than male participants (48 Females, 37 Males). Ethnicity was also reported (51 Caucasian American, 6 Black or African American, 6 Asian American, 1 American Indian or Alaska Native, 1 Asian, 13 Caucasian Europeans, 7 Other). In addition to removing subjects who straight-lined (1), I also removed subjects who left portions of the AVI unanswered (17).
Rather than starting with a batch of 80 HITs as originally planned, I created 8 batches, each with 45 HITs.
I am uploading a version of the data that does not have MTurk IDs or other identifying information (I removed those values from the csv file). NB: I removed the second row of the downloaded csv file which contained the exact text of each question (see .Rmd file for additional information)4.
Following Koopmann-Holm et al.’s analysis, I combine AVI responses for “calm” and “peaceful” together to measure LAP and AVI responses for “enthusiastic” and “euphoric” together to measure HAP.
###Data Preparation
####Load Relevant Libraries and Functions
library(forcats)
library(tidyverse)
library(dplyr)
library(tidyr)
library(ez)
library(ggplot2)
library(sjstats)
library(heplots)
####Import data
FinalData <- read_csv(file="FinalNoID.csv", col_names = T, col_types = NULL, na = c("", "NA"))
#### Data exclusion / filtering
# *I am adding a section here to remove participants who left portions of the AVI blank and to remove participants who engaged in straightlining. I manually checked the data for straightlining and missing AVI responses.*
# Remove straighlining (row 155) and incomplete AVIs (all others listed below).
# NB that if you look at the csv file, you need to add 1 to these numbers as the header row is counted as row 1.
FinalData <- FinalData[-c(30, 31, 98, 141, 143, 144, 155, 185, 188, 189, 190, 193, 194, 195, 232, 233, 236, 242), ]
#### Prepare data for analysis - create columns etc.
# Combine "nonmeditator" and "meditator" columns into one column.
FinalData <- FinalData %>%
unite(Meditator, nonmeditator, meditator)
# Use rowMeans to calculate composite factors
# https://web.stanford.edu/class/psych253/tutorials/FactorAnalysis.html
# composite factors
IdealLAP <- rowMeans(cbind(FinalData$I_calm, FinalData$I_peaceful))
IdealHAP <- rowMeans(cbind(FinalData$I_enthusiastic, FinalData$I_euphoric))
ActualLAP <- rowMeans(cbind(FinalData$A_calm, FinalData$A_peaceful))
ActualHAP <- rowMeans(cbind(FinalData$A_enthusiastic, FinalData$A_euphoric))
# combine into dataframe
combined_data <- cbind(IdealLAP, IdealHAP, ActualLAP, ActualHAP)
combined_data <- as.data.frame(combined_data)
# join with relevent parts of pilotBData
B <- cbind(FinalData$Meditator, FinalData$Age, FinalData$Gender, FinalData$Ethnicity, FinalData$Region, FinalData$Frequency, FinalData$`How many minutes`)
B <- as.data.frame(B)
joined <- cbind(B, combined_data)
joined <- as.data.frame(joined)
# Change column names for V1 and V2 to Meditator and Age.
colnames(joined)[1] <- "Meditator"
colnames(joined)[2] <- "Age"
colnames(joined)[3] <- "Gender"
colnames(joined)[4] <- "Ethnicity"
colnames(joined)[5] <- "Region"
colnames(joined)[6] <- "Frequency"
colnames(joined)[7] <- "Duration"
# Create Confidence Intervals
sem <- function(x) {sd(x, na.rm=TRUE) / sqrt(sum(!is.na((x))))}
ci <- function(x) {sem(x) * 1.96}
# First, clean up "joined": remove participants with "NA_NA" under "Meditator". These are participants who do not qualify as either Meditators or Nonmeditators.
joined <- joined %>%
filter(Meditator != "NA_NA")
# Now remove "No_NA." This is a participant who qualified as a Nonmeditator but chose not to do the AVI (i.e. chose not to take the Bonus).
joined <- joined[complete.cases(joined$Age),]
# Change "Age" from factor to numeric
joined$Age <- as.numeric(as.character(joined$Age))
# Remove unused level from factor "Meditator"
joined <- droplevels(joined)
# Add rownames to use as n for ez
joined <- joined %>%
mutate(n=as.integer(rownames(joined)))
# *For reference, the total number of Nonmeditators (N) and Meditators (M) are calculated here. In this final data set there are 42 Nonmeditators and 43 Meditators.*
N <- grep("\\<No_NA\\>", joined$Meditator)
M <- grep("\\<NA_1 year or more\\>", joined$Meditator)
# Gender Counts
Male <- grep("\\<1\\>", joined$Gender)
Female <- grep("\\<2\\>", joined$Gender)
# Ethnicity numbers
Ethnicity <- joined %>%
group_by(Ethnicity) %>%
summarise(n = n())
# Change names of factor levels for Meditator from "NA_1 year or more" and "No_NA" to "Meditators" and "Nonmeditators". There will also be a blank for the NA_NA group that are not included in the final plot.
levels(joined$Meditator) <- c("Meditators", "Nonmeditators")
# Factor levels for Region.
levels(joined$Region) <- c("West", "Midwest", "South", "Northeast")
# Factor levels for Frequency.
levels(joined$Frequency) <- list(Never="1", Two="2", Three="3", Four="4", Five="5", Six="6", MultipleTimesADay="7")
# Factor levels for Duration
levels(joined$Duration) <- list('<5'="1",
'~10'="2",
'~15'="3",
'~20'="4",
'~25'="5",
'~30'="6",
'~35'="7",
'~40'="8",
'~45'="9",
'~50'="10",
'~55'="11",
'an hour or more'="12")
# Factor levels for Ethnicity
levels(joined$Ethnicity) <- list('Caucasian American'="1",
'Black or African American'="2",
'Asian American'="3",
'American Indian or Alaska Native'="4",
'Asian'="5",
'Native Hawaiian or Pacific Islander'="6",
'Caucasian European'="7",
'Other'="8")
toPlot <- joined %>%
group_by(Meditator) %>%
summarise(MeanAge = mean(Age),
MeanActualLAP = mean(ActualLAP),
MeanIdealLAP = mean(IdealLAP),
"ci" = ci(IdealLAP),
cilow = MeanIdealLAP - ci,
cihi = MeanIdealLAP + ci,
n=n())
knitr::kable(toPlot, caption = "Summary Data")
| Meditator | MeanAge | MeanActualLAP | MeanIdealLAP | ci | cilow | cihi | n |
|---|---|---|---|---|---|---|---|
| Meditators | 35.39535 | 3.011628 | 4.360465 | 0.226710 | 4.133755 | 4.587175 | 43 |
| Nonmeditators | 34.00000 | 3.154762 | 4.523809 | 0.208445 | 4.315365 | 4.732254 | 42 |
fit2 <- aov(IdealLAP ~ Meditator + Age + ActualLAP, data=joined)
layout(matrix(c(1,2,3,4),2,2))
plot(fit2)
fit2_summary <- summary(fit2)
print(xtable::xtable(fit2_summary, caption = "ANCOVA Summary"),
type = "html")
| Df | Sum Sq | Mean Sq | F value | Pr(>F) | |
|---|---|---|---|---|---|
| Meditator | 1 | 0.57 | 0.57 | 1.13 | 0.2911 |
| Age | 1 | 0.62 | 0.62 | 1.23 | 0.2712 |
| ActualLAP | 1 | 2.35 | 2.35 | 4.69 | 0.0334 |
| Residuals | 81 | 40.67 | 0.50 |
p <- ggplot(data=toPlot,
mapping = aes(x=Meditator,
y = MeanIdealLAP))
p + geom_col(aes(fill = Meditator))+
xlab("Meditators or Nonmeditators")+
ylab("Average Ideal LAP Word Rating")+
ggtitle("Figure 1. Ideal LAP")+
theme_minimal()+
geom_errorbar(data = toPlot,
mapping = aes(x=Meditator, ymin=cilow, ymax=cihi),
width=.2,
position=position_dodge(.9))
Original plot of LAP for Meditators and Nonmeditators
# Calculate partial eta squared
# Sanity check on ANCOVA results by using another method (eta_sq from "sjstats")
My_eta <- eta_sq(fit2, partial=TRUE) # This equals the SS(factor=Meditator)/(SS(factor=Meditator)+SS(residual))
knitr::kable(My_eta, caption = "Partial eta squared values")
| Meditator | 0.0137474 |
| Age | 0.0149240 |
| ActualLAP | 0.0546896 |
# Make a scatterplot of ideal LAP reponses for Meditators and Nonmeditators.
s <- ggplot(data=joined,
mapping=aes(x=Meditator,
y=IdealLAP,
color=Meditator))
s + geom_jitter(width=.2)+
theme_minimal()+
ggtitle("Ideal LAP ratings by Meditators and Nonmeditators")
plotIdealHAP <- joined %>%
group_by(Meditator) %>%
summarise(MeanAge = mean(Age),
MeanActualHAP = mean(ActualHAP),
MeanIdealHAP = mean(IdealHAP),
"ci" = ci(IdealHAP),
cilow = MeanIdealHAP - ci,
cihi = MeanIdealHAP + ci,
n=n())
knitr::kable(plotIdealHAP, caption = "Ideal HAP Summary Data")
| Meditator | MeanAge | MeanActualHAP | MeanIdealHAP | ci | cilow | cihi | n |
|---|---|---|---|---|---|---|---|
| Meditators | 35.39535 | 2.488372 | 3.453488 | 0.2763673 | 3.177121 | 3.729856 | 43 |
| Nonmeditators | 34.00000 | 2.440476 | 3.464286 | 0.3013128 | 3.162973 | 3.765599 | 42 |
fitIdealHAP <- aov(IdealHAP ~ Meditator + Age + ActualHAP, data=joined)
layout(matrix(c(1,2,3,4),2,2))
plot(fitIdealHAP)
fitIdealHAP_summary <- summary(fitIdealHAP)
print(xtable::xtable(fitIdealHAP_summary, caption = "Ideal HAP ANCOVA Summary"),
type = "html")
| Df | Sum Sq | Mean Sq | F value | Pr(>F) | |
|---|---|---|---|---|---|
| Meditator | 1 | 0.00 | 0.00 | 0.00 | 0.9550 |
| Age | 1 | 2.81 | 2.81 | 3.64 | 0.0598 |
| ActualHAP | 1 | 11.25 | 11.25 | 14.56 | 0.0003 |
| Residuals | 81 | 62.54 | 0.77 |
p <- ggplot(data=plotIdealHAP,
mapping = aes(x=Meditator,
y = MeanIdealHAP))
p + geom_col(aes(fill = Meditator))+
xlab("Meditators or Nonmeditators")+
ylab("Average Ideal HAP Word Rating")+
ggtitle("Figure 1. Ideal HAP")+
theme_minimal()+
geom_errorbar(data = plotIdealHAP,
mapping = aes(x=Meditator, ymin=cilow, ymax=cihi),
width=.2,
position=position_dodge(.9))
The similarities in Actual LAP ratings between Meditators and Nonmeditators mirror Koopmann-Holm et al.’s finding in Figure 1 (above).
plotActualLAP <- joined %>%
group_by(Meditator) %>%
summarise(MeanAge = mean(Age),
MeanActualLAP = mean(ActualLAP),
MeanIdealLAP = mean(IdealLAP),
"ci" = ci(ActualLAP),
cilow = MeanActualLAP - ci,
cihi = MeanActualLAP + ci,
n=n())
knitr::kable(plotActualLAP, caption = "Actual LAP Summary Data")
| Meditator | MeanAge | MeanActualLAP | MeanIdealLAP | ci | cilow | cihi | n |
|---|---|---|---|---|---|---|---|
| Meditators | 35.39535 | 3.011628 | 4.360465 | 0.2698924 | 2.741735 | 3.281520 | 43 |
| Nonmeditators | 34.00000 | 3.154762 | 4.523809 | 0.2510169 | 2.903745 | 3.405779 | 42 |
fitActualLAP <- aov(ActualLAP ~ Meditator + Age + IdealLAP, data=joined)
layout(matrix(c(1,2,3,4),2,2))
plot(fitActualLAP)
fitActualLAP_summary <- summary(fitActualLAP)
print(xtable::xtable(fitActualLAP_summary, caption = "Actual LAP ANCOVA Summary"),
type = "html")
| Df | Sum Sq | Mean Sq | F value | Pr(>F) | |
|---|---|---|---|---|---|
| Meditator | 1 | 0.44 | 0.44 | 0.60 | 0.4399 |
| Age | 1 | 0.58 | 0.58 | 0.80 | 0.3748 |
| IdealLAP | 1 | 3.39 | 3.39 | 4.69 | 0.0334 |
| Residuals | 81 | 58.53 | 0.72 |
p <- ggplot(data=plotActualLAP,
mapping = aes(x=Meditator,
y = MeanActualLAP))
p + geom_col(aes(fill = Meditator))+
xlab("Meditators or Nonmeditators")+
ylab("Average Actual LAP Word Rating")+
ggtitle("Figure 1. Actual LAP")+
theme_minimal()+
geom_errorbar(data = plotActualLAP,
mapping = aes(x=Meditator, ymin=cilow, ymax=cihi),
width=.2,
position=position_dodge(.9))
The similarities in Actual HAP ratings between Meditators and Nonmeditators mirror Koopmann-Holm et al.’s finding in Figure 1 (above).
plotActualHAP <- joined %>%
group_by(Meditator) %>%
summarise(MeanAge = mean(Age),
MeanActualHAP = mean(ActualHAP),
MeanIdealHAP = mean(IdealHAP),
"ci" = ci(ActualHAP),
cilow = MeanActualHAP - ci,
cihi = MeanActualHAP + ci,
n=n())
knitr::kable(plotActualHAP, caption = "Actual HAP Summary Data")
| Meditator | MeanAge | MeanActualHAP | MeanIdealHAP | ci | cilow | cihi | n |
|---|---|---|---|---|---|---|---|
| Meditators | 35.39535 | 2.488372 | 3.453488 | 0.2451104 | 2.243262 | 2.733483 | 43 |
| Nonmeditators | 34.00000 | 2.440476 | 3.464286 | 0.2342705 | 2.206206 | 2.674747 | 42 |
fitActualHAP <- aov(ActualHAP ~ Meditator + Age + IdealHAP, data=joined)
layout(matrix(c(1,2,3,4),2,2))
plot(fitActualHAP)
fitActualHAP_summary <- summary(fitActualHAP)
print(xtable::xtable(fitActualHAP_summary, caption = "Actual HAP ANCOVA Summary"),
type = "html")
| Df | Sum Sq | Mean Sq | F value | Pr(>F) | |
|---|---|---|---|---|---|
| Meditator | 1 | 0.05 | 0.05 | 0.10 | 0.7569 |
| Age | 1 | 4.58 | 4.58 | 9.08 | 0.0035 |
| IdealHAP | 1 | 7.35 | 7.35 | 14.56 | 0.0003 |
| Residuals | 81 | 40.91 | 0.51 |
p <- ggplot(data=plotActualHAP,
mapping = aes(x=Meditator,
y = MeanActualHAP))
p + geom_col(aes(fill = Meditator))+
xlab("Meditators or Nonmeditators")+
ylab("Average Actual HAP Word Rating")+
ggtitle("Figure 1. Actual HAP")+
theme_minimal()+
geom_errorbar(data = plotActualHAP,
mapping = aes(x=Meditator, ymin=cilow, ymax=cihi),
width=.2,
position=position_dodge(.9))
# Investigate Ideal LAP differences by US region (primarily interested in West Coast versus East Coast).
region <- joined %>%
group_by(Region) %>%
summarise(MeanAge = mean(Age),
MeanActualLAP = mean(ActualLAP),
MeanIdealLAP = mean(IdealLAP),
"ci" = ci(IdealLAP),
cilow = MeanIdealLAP - ci,
cihi = MeanIdealLAP + ci,
n=n())
p <- ggplot(data=region,
mapping = aes(x=Region,
y = MeanIdealLAP))
p + geom_col(aes(fill = Region))+
xlab("Region")+
ylab("Average Ideal LAP Word Rating")+
ggtitle("Ideal LAP ratings by Region")+
theme_minimal()+
geom_errorbar(data = region,
mapping = aes(x=Region, ymin=cilow, ymax=cihi),
width=.2,
position=position_dodge(.9))
fitregion <- aov(IdealLAP ~ Region + Age + ActualLAP, data=joined)
layout(matrix(c(1,2,3,4),2,2))
plot(fitregion)
fitregion_summary <- summary(fitregion)
print(xtable::xtable(fitregion_summary, caption = "ANCOVA Region Summary"),type = "html")
| Df | Sum Sq | Mean Sq | F value | Pr(>F) | |
|---|---|---|---|---|---|
| Region | 3 | 0.14 | 0.05 | 0.09 | 0.9661 |
| Age | 1 | 0.52 | 0.52 | 1.00 | 0.3215 |
| ActualLAP | 1 | 2.47 | 2.47 | 4.76 | 0.0322 |
| Residuals | 79 | 41.08 | 0.52 |
plotEthnicity <- joined %>%
group_by(Ethnicity) %>%
summarise(MeanAge = mean(Age),
MeanActualLAP = mean(ActualLAP),
MeanIdealLAP = mean(IdealLAP),
"ci" = ci(IdealLAP),
cilow = MeanIdealLAP - ci,
cihi = MeanIdealLAP + ci,
n=n())
p <- ggplot(data=plotEthnicity,
mapping = aes(x=Ethnicity,
y = MeanIdealLAP))
p + geom_col(aes(fill = Ethnicity))+
xlab("Ethnicity")+
ylab("Average Ideal LAP Word Rating")+
ggtitle("Ideal LAP ratings by Ethnicity")+
theme_minimal()+
geom_errorbar(data = plotEthnicity,
mapping = aes(x=Ethnicity, ymin=cilow, ymax=cihi),
width=.2,
position=position_dodge(.9))+
scale_fill_discrete(drop=FALSE) +
scale_x_discrete(drop=FALSE)+
theme(axis.text.x = element_text(angle = 55, vjust = 1, hjust=1))
fitEth <- aov(IdealLAP ~ Ethnicity + Age + ActualLAP, data=joined)
layout(matrix(c(1,2,3,4),2,2))
plot(fitEth)
## Warning: not plotting observations with leverage one:
## 8, 48
## Warning: not plotting observations with leverage one:
## 8, 48
fitEth_summary <- summary(fitEth)
print(xtable::xtable(fitEth_summary, caption = "ANCOVA Ethnicity Summary"),type = "html")
| Df | Sum Sq | Mean Sq | F value | Pr(>F) | |
|---|---|---|---|---|---|
| Ethnicity | 6 | 3.64 | 0.61 | 1.21 | 0.3104 |
| Age | 1 | 0.32 | 0.32 | 0.63 | 0.4305 |
| ActualLAP | 1 | 2.11 | 2.11 | 4.19 | 0.0440 |
| Residuals | 76 | 38.14 | 0.50 |
# Plotting Meditators' reported Frequency for meditating.
s <- ggplot(data= subset(joined, Meditator == "Meditators"),
mapping=aes(x=Frequency))
s + geom_bar()+
theme_minimal()+
ggtitle("Meditator responses to 'How often do you meditate?'")+
xlab("Times per week the participant meditates")+
scale_fill_discrete(drop=FALSE) +
scale_x_discrete(drop=FALSE)
s <- ggplot(data= subset(joined, Meditator=="Meditators"),
mapping=aes(x=Duration))
s + geom_bar()+
theme_minimal()+
ggtitle("Meditator responses to \n'About how many minutes do you meditate per meditation session?'")+
xlab("Meditation session duration")+
scale_fill_discrete(drop=FALSE) +
scale_x_discrete(drop=FALSE)
# Investigate Ideal LAP differences by Frequency.
plotFreq <- joined %>%
group_by(Frequency) %>%
summarise(MeanAge = mean(Age),
MeanActualLAP = mean(ActualLAP),
MeanIdealLAP = mean(IdealLAP),
"ci" = ci(IdealLAP),
cilow = MeanIdealLAP - ci,
cihi = MeanIdealLAP + ci,
n=n())
p <- ggplot(data= subset(plotFreq, !is.na(Frequency)),
mapping = aes(x=Frequency,
y = MeanIdealLAP))
p + geom_col()+
xlab("Days meditated per week")+
ylab("Average Ideal LAP Word Rating")+
ggtitle("Ideal LAP ratings by meditation frequency")+
theme_minimal()+
geom_errorbar(data = subset(plotFreq, !is.na(Frequency)),
mapping = aes(x=Frequency, ymin=cilow, ymax=cihi),
width=.2,
position=position_dodge(.9))+
scale_fill_discrete(drop=FALSE) +
scale_x_discrete(drop=FALSE)+
theme(axis.text.x = element_text(angle = 55, vjust = 1, hjust=1))
fitFreq <- aov(IdealLAP ~ Frequency + Age + ActualLAP, data=joined)
layout(matrix(c(1,2,3,4),2,2))
plot(fitFreq)
fitFreq_summary <- summary(fitFreq)
print(xtable::xtable(fitFreq_summary, caption = "ANCOVA Frequency Summary"),type = "html")
| Df | Sum Sq | Mean Sq | F value | Pr(>F) | |
|---|---|---|---|---|---|
| Frequency | 5 | 5.46 | 1.09 | 2.16 | 0.0809 |
| Age | 1 | 0.50 | 0.50 | 0.99 | 0.3257 |
| ActualLAP | 1 | 0.52 | 0.52 | 1.04 | 0.3155 |
| Residuals | 35 | 17.68 | 0.51 |
# Investigate Ideal LAP differences by Duration
plotDur <- joined %>%
group_by(Duration) %>%
summarise(MeanAge = mean(Age),
MeanActualLAP = mean(ActualLAP),
MeanIdealLAP = mean(IdealLAP),
"ci" = ci(IdealLAP),
cilow = MeanIdealLAP - ci,
cihi = MeanIdealLAP + ci,
n=n())
p <- ggplot(data= subset(plotDur, !is.na(Duration)),
mapping = aes(x=Duration,
y = MeanIdealLAP))
p + geom_col()+
xlab("Length of average meditation session in minutes")+
ylab("Average Ideal LAP Word Rating")+
ggtitle("Ideal LAP ratings by meditation duration")+
theme_minimal()+
geom_errorbar(data = subset(plotDur, !is.na(Duration)),
mapping = aes(x=Duration, ymin=cilow, ymax=cihi),
width=.2,
position=position_dodge(.9))+
scale_fill_discrete(drop=FALSE) +
scale_x_discrete(drop=FALSE)+
theme(axis.text.x = element_text(angle = 55, vjust = 1, hjust=1))
The primary result of the confirmatory analysis shows no significant difference between Meditators’ and Nonmeditators valuation of ideal LAP (as measured by responses to the words “calm” and “peaceful”). Unlike Koopmann-Holm et al. 2013, our MTurk study means show Nonmeditators rating ideal LAP words slightly higher than Meditators. In sum, I failed to replicate the original result.
This inability to replicate the key statistic could be explained by a number of differences between the original study and this replication.
First, Koopmann-Holm et al. recruited students on campus and then directed them to an online study. That campus population differed in age from our replication and may also contain less variance between participants in comparison with our US-wide sample.
Secondly, Koopmann-Holm et al. recruited Meditators and Nonmeditators separately. Our replication used a short block of eligibility questions that masked the eligibility criteria. Thus, while Koopmann-Holm, et al.‘s Meditators were recruited for being meditators (or so it sounds in the article), our Meditators were unaware that their meditation practice was central to the study. Perhaps Koopmann-Holm et al.’s Meditators’ awareness of the importance of their meditating primed them to report higher LAP values? Or perhaps the original study’s Meditators had more meditation experience which resulted in higher ideal LAP ratings (they reported an average of 4.28 years of meditation, SD = 2.92). Directly comparing the average number of years Meditators meditated between the original study and this replication would be ideal. Unfortunately I failed to collect the number of years Meditators practiced (in the final version of the survey participants only noted if it was less than one year or more than one year). While the frequency and duration of meditation looks similar for the original study and the replication, the long term effects (measured in years) remain unknown.
Finally, our implementation of the AVI split up ideal and actual affect sections into 3 sections each to minimize participant fatigue. In comparison with the original AVI where ideal and actual affect each have one page, our AVI could cause participants to be less certain of which section (ideal or actual) they were completing (I did, however, repeat the appropriate instructions at the top of each survey page).